package cn.jolywood.cloud.module.crm.controller.admin.obtainguest.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;
import jakarta.validation.constraints.*;

@Schema(description = "管理后台 - 订单获客主新增/修改 Request VO")
@Data
public class ObtainGuestSaveReqVO {

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "9846")
    private Integer id;

    @Schema(description = "获客编号", requiredMode = Schema.RequiredMode.REQUIRED)
    private String obtainGuestNo;

    @Schema(description = "客户类型(0：个人；1：企业)", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "客户类型(0：个人；1：企业)不能为空")
    private Integer clientType;

    @Schema(description = "客户名称/单位名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    @NotEmpty(message = "客户名称/单位名称不能为空")
    private String clientName;

    @Schema(description = "身份证号/企业税号", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "身份证号/企业税号不能为空")
    private String taxNumber;

    @Schema(description = "客户联系方式", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "客户联系方式不能为空")
    private String clientPhone;

    @Schema(description = "业务经理（负责人的id）", requiredMode = Schema.RequiredMode.REQUIRED, example = "17696")
    @NotNull(message = "业务经理（负责人的id）不能为空")
    private Integer businessManagerId;

    @Schema(description = "业务经理联系方式")
    private String businessManagerPhone;

    @Schema(description = "付款方式", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "付款方式不能为空")
    private String payType;

    @Schema(description = "销售类型（0：物料类；1：项目类）", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @NotNull(message = "销售类型（0：物料类；1：项目类）不能为空")
    private Integer sellType;

    @Schema(description = "合同类型（0：标准合同；1：非标准合同）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "合同类型（0：标准合同；1：非标准合同）不能为空")
    private Integer contractType;

    @Schema(description = "产品类型（0：标准产品；1：非标准产品）", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @NotNull(message = "产品类型（0：标准产品；1：非标准产品）不能为空")
    private Integer productType;

    @Schema(description = "客户地址", requiredMode = Schema.RequiredMode.REQUIRED, example = "28637")
    @NotNull(message = "客户地址不能为空")
    private Integer clientAreaId;

    @Schema(description = "客户详情地址", requiredMode = Schema.RequiredMode.REQUIRED)
    @NotEmpty(message = "客户详情地址不能为空")
    private String clientDetailAddress;

    @Schema(description = "备注")
    private String remark;

    @Schema(description = "所属大区")
    @NotNull(message = "所属大区不能为空")
    private Integer belongArea;

    @Schema(description = "附件urls")
    private List<String> attachmentUrls;

}